<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        const arr = [1, 2, 3, 4, 5]

        // for循环

        // forEach
        arr.forEach(function(item, index, arr) {
            console.log(item, index, arr)
        })

        // map 有返回值 会创建新数组并返回
        let a = arr.map(function(item, index, att){
            item *= 10
            return item
        })
        console.log(a, arr)

        // filter 过滤 返回符合条件的数组
        let list = [{
            name: "孙悟空",
            age: 500,
            like: "桃子"
        },{
            name: "猪八戒",
            age: 100,
            like: "翠花"
        },{
            name: "唐僧",
            age: 18,
            like: "桃子"
        }]

        // 返回大于18的数据
        let res = list.filter(function(item, index) {
            // 直接在return后面写条件
            return item.age > 18
        })
        console.log(res)


        // some() 判断是否有符合条件的数据  返回布尔值
        let sun = list.some(function(item, index) {
            return item.name == "孙悟空"
        })

        console.log(sun);//true

        // every()  判断每项数据是否符合条件  返回布尔值
        let ev = list.every(function(item, index){
            return item.name == "孙悟空"
        })
        console.log(ev);//false

        // reduce()
        // arr = [1, 2, 3, 4, 5]
        let sum = arr.reduce(function(prev, item, index, arr) {
            // 回调函数
            // prev（上一次的返回值或者初始值
            // item 数组的每一项 
            // index 下标
            // arr 元素组
            return prev + item
            // 0 初始值
        }, 0)

        console.log(sum)

        // 数组去重

        let newArr = arr2.reduce(function(prev, item, index) {
            if (prev.indexOf(item) == -1) {
                prev.push(item)
            }

            return prev
        }, [])
        
        console.log(newArr)


</script>
</body>
</html>